package edu.zjut.hjg.saas.biz.dao;

import java.util.List;

import edu.zjut.hjg.saas.biz.model.Resource;

/**
 * 资源数据库操作接口
 *
 * @author hjg
 */
public interface ResourceDao {
    /**
     * 通过资源类型标识查找一组资源
     *
     * @param resourceKey 资源类型标识
     * @return 返回一组资源
     */
    List<Resource> listByResourceKey(String resourceKey);

    /**
     * 通过父级资源的资源类型和代码获取所有子资源
     *
     * @param resourceKey 资源类型标识
     * @param realValue 资源实际值（代码）
     * @return 所有子资源
     */
    List<Resource> listChildrenByParentResourceKeyAndRealValue(String resourceKey, String realValue);

    /**
     * 通过父级资源号查获取所有子资源
     *
     * @param parentId 父级资源号
     * @return 所有子资源
     */
    List<Resource> listChildrenByParentId(int parentId);

    /**
     * 通过资源类型和代码获取资源
     *
     * @param resourceKey 资源类型标识
     * @param realValue 资源实际值（代码）
     * @return 返回资源，如果没有找到，则返回null
     */
    Resource findByResourceKeyAndRealValue(String resourceKey, String realValue);

    Resource load(Integer id);
}
